/**
 * Author(s): xuming.Wong <xuming.Wong@gmail.com>
 */

#ifndef __RIGIDBODY_COMPONENT__
#define __RIGIDBODY_COMPONENT__

#include "Component.h"

namespace PQEngine
{
	class RigidBodyComponent 
		: public Component
	{
	private:
		bool _isKinematic;
		bool _useGravity;
		float _mass;
		float _restitution;
		float _friction;
		Ogre::Vector3 _constantForce;
	public:
		RigidBodyComponent();

		inline bool isKinematic()
		{
			return _isKinematic;
		}
		inline void setKinematic(bool isKinematic)
		{
			_isKinematic=isKinematic;
		}

		inline float getMass()
		{
			return _mass;
		}

		inline void setMass(float mass)
		{
			_mass=mass;
		}

		inline bool useGravity()
		{
			return _useGravity;
		}

		inline void setUseGravity(bool use)
		{
			_useGravity=use;
		}

		inline Ogre::Vector3 getConstantForce()
		{
			return _constantForce;
		}

		inline void setConstantForce(Ogre::Vector3 force)
		{
			_constantForce=force;
		}

		inline void setRestitution(float restitution)
		{
			_restitution=restitution;
		}

		inline float getRestitution()
		{
			return _restitution;
		}

		inline void setFriction(float friction)
		{
			_friction=friction;
		}
		inline float getFriction()
		{
			return _friction;
		}
	};
}
#endif
